{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3f964709",
   "metadata": {},
   "source": [
    "# Get started with MLX for Apple silicon"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b11ab931",
   "metadata": {},
   "source": [
    "### Basics operations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0e068977",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Result c: array([5, 7, 9], dtype=int32)\n",
      "Shape: (3,)\n",
      "Data type: mlx.core.int32\n"
     ]
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "# Make an array\n",
    "a = mx.array([1, 2, 3])\n",
    "\n",
    "# Make another array\n",
    "b = mx.array([4, 5, 6])\n",
    "\n",
    "# Do an operation\n",
    "c = a + b\n",
    "\n",
    "# Access information about the array\n",
    "shape = c.shape\n",
    "dtype = c.dtype\n",
    "\n",
    "print(f\"Result c: {c}\")\n",
    "print(f\"Shape: {shape}\")\n",
    "print(f\"Data type: {dtype}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "852c80f9",
   "metadata": {},
   "source": [
    "### Unified Memory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "2c344ed4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "c computed on the GPU: array([5, 7, 9], dtype=int32)\n",
      "d computed on the CPU: array([4, 10, 18], dtype=int32)\n"
     ]
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "a = mx.array([1, 2, 3])\n",
    "b = mx.array([4, 5, 6])\n",
    "\n",
    "c = mx.add(a, b, stream=mx.gpu)\n",
    "d = mx.multiply(a, b, stream=mx.cpu)\n",
    "\n",
    "print(f\"c computed on the GPU: {c}\")\n",
    "print(f\"d computed on the CPU: {d}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1c809aa",
   "metadata": {},
   "source": [
    "### Lazy computation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "83cb860d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "array([5, 7, 9], dtype=int32)\n",
      "Evaluate c by converting to list: [5, 7, 9]\n",
      "Evaluate c using print: array([5, 7, 9], dtype=int32)\n",
      "Evaluate c using mx.eval(): array([5, 7, 9], dtype=int32)\n"
     ]
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "# Make an array\n",
    "a = mx.array([1, 2, 3])\n",
    "\n",
    "# Make another array\n",
    "b = mx.array([4, 5, 6])\n",
    "\n",
    "# Do an operation\n",
    "c = a + b\n",
    "\n",
    "# Evaluates c before printing it\n",
    "print(c)\n",
    "\n",
    "# Also evaluates c\n",
    "c_list = c.tolist()\n",
    "\n",
    "# Also evaluates c\n",
    "mx.eval(c)\n",
    "\n",
    "print(f\"Evaluate c by converting to list: {c_list}\")\n",
    "print(f\"Evaluate c using print: {c}\")\n",
    "print(f\"Evaluate c using mx.eval(): {c}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dc742c8a",
   "metadata": {},
   "source": [
    "### Function transformation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f3e5fde1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(-0.841471, dtype=float32)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "def sin(x):\n",
    "    return mx.sin(x)\n",
    "\n",
    "dfdx = mx.grad(sin)\n",
    "\n",
    "def sin(x):\n",
    "    return mx.sin(x)\n",
    "\n",
    "d2fdx2 = mx.grad(mx.grad(mx.sin))\n",
    "\n",
    "# Computes the second derivative of sine at 1.0\n",
    "d2fdx2(mx.array(1.0))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4850f6d",
   "metadata": {},
   "source": [
    "#### Visualizing `sin`, `grad(sin)`,  `grad(grad(sin))`\n",
    "Plot should show `sin(x)`, `cos(x)` and `-sin(x)`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6cb0c908",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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wh/i8xHvR7RqJRcCEYVJRIuWKMghkjtxH/H8AwYMkO/n+PHjsniIKOQhPue//voLwcHBaT4PUaykYcOGKV0UiYgoG2RqJBkREdF/JAo9WFtb6w8ePPiv20QxiWbNmul1Ol26jx07dqwsZuHs7Kx/66239HPmzNHnyZNH3hYUFKQvWLCgfsaMGSn3T0hIkMU8evTokW5hjWHDhskCGvb29np3d3d937599SEhIRnGLgqKFCpUSL99+/aUbcnPKRYrKyt97ty5ZVEPEeujR4/+9RwrVqzQV6lSRW9nZ6d3dXXVN2rUSP/XX3+l3H748GF9pUqV5O0idlHcQzz31atX030PycRnNnfuXH2ZMmX0tra28v20bt1av3///pT7iMIlXbp00efNm1efK1cufdmyZfWjRo2Sj71y5Yq8v3ic+DxKly6tX7BgQZrXEM+9atWqDD8fIiLKOivxv+xI6IiIiMzZwoULsXHjRtmaZAyidU+0WoWHhyvaEiW6eopunxcuXMiwayMREWUd/6ISERFlwgcffCDn5IqMjJRdArObmAtMTFYt5j8TlQ7FPGJiri+luwOKqo+iGyWTMCKi7MUWMSIiIhPw9ddfY9GiRXK8maenJzp37iwngBZl/omIyPwwESMiIiIiIjIyVk0kIiIiIiIyMiZiRERERERERsZEjIiIiIiIyMiYiBERERERERkZEzEiIiIiIiIjYyJGRERERERkZEzEiIiIiIiIjIyJGBERERERkZExESMiIiIiIoJx/R++Kv9VwiquMAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def plot_waves(x, fn1, fn2, fn3, labels):\n",
    "\n",
    "    # Generate y values for sin(x) and dfdx(sin(x))\n",
    "    y_1 = fn1(x)\n",
    "    y_2 = fn2(x)\n",
    "    y_3 = fn3(x)\n",
    "\n",
    "    # Create the plot\n",
    "    plt.figure(figsize=(10, 6))\n",
    "    # Note: x is already in degrees here for plotting\n",
    "    plt.plot(x, y_1, label=labels[0], marker='o', linestyle='-', markersize=5, markevery=20)\n",
    "    plt.plot(x, y_2, label=labels[1], marker='x', linestyle='--', markersize=5, markevery=20)\n",
    "    plt.plot(x, y_3, label=labels[2], marker='*', linestyle='-.', markersize=5, markevery=20)\n",
    "\n",
    "    # Add labels\n",
    "    plt.xlabel('X-axis (Degrees)') # Changed label here\n",
    "    plt.ylabel('Y-axis')\n",
    "\n",
    "    plt.legend()\n",
    "    plt.grid(True)\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "x = mx.linspace(0, 2 * mx.pi, 400)\n",
    "\n",
    "cos = mx.vmap(dfdx)\n",
    "negative_sin = mx.vmap(d2fdx2)\n",
    "\n",
    "plot_waves(x, sin, cos, negative_sin, [\"sin(x)\",\"dfdx(sin(x))\", \"d2fdx2(sin(x))\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbc810b7",
   "metadata": {},
   "source": [
    "### Neural Networks in MLX and Pytorch"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be4d8dd4",
   "metadata": {},
   "source": [
    "MLX Neural Network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fd53cc03",
   "metadata": {},
   "outputs": [],
   "source": [
    "import mlx.core as mx\n",
    "import mlx.nn as nn\n",
    "import mlx.optimizers as optim\n",
    "\n",
    "class MLP(nn.Module):\n",
    "    \"\"\"A simple MLP.\"\"\"\n",
    "\n",
    "    def __init__(self, dim, h_dim):\n",
    "        super().__init__()\n",
    "        self.linear1 = nn.Linear(dim, h_dim)\n",
    "        self.linear2 = nn.Linear(h_dim, dim)\n",
    "\n",
    "    def __call__(self, x):\n",
    "        x = self.linear1(x)\n",
    "        x = nn.relu(x)\n",
    "        x = self.linear2(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ace491fb",
   "metadata": {},
   "source": [
    "MLX Training loop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "80f3d568",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final Loss after 5 steps: 1.0052\n"
     ]
    }
   ],
   "source": [
    "n_epochs = 5\n",
    "input_dim, hidden_dim, num_samples = 10, 50, 1000\n",
    "\n",
    "model = MLP(input_dim, hidden_dim)\n",
    "\n",
    "def loss_fn(model, X, y):\n",
    "    return nn.losses.mse_loss(model(X), y)\n",
    "\n",
    "loss_and_grad_fn = nn.value_and_grad(model, loss_fn)\n",
    "optimizer = optim.Adam(learning_rate=0.01)\n",
    "\n",
    "X_train = mx.random.normal([num_samples, input_dim])\n",
    "y_train = mx.random.normal([num_samples, input_dim])\n",
    "\n",
    "for epoch in range(n_epochs):\n",
    "    loss, grads = loss_and_grad_fn(model, X_train, y_train)\n",
    "    model.update(optimizer.apply_gradients(grads, model))\n",
    "    mx.eval(model.parameters(), optimizer.state) \n",
    "\n",
    "print(f\"Final Loss after 5 steps: {loss.item():.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5fa466a7",
   "metadata": {},
   "source": [
    "PyTorch Neural Network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "1c39f647",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "\n",
    "class MLP(nn.Module):\n",
    "    \"\"\"A simple MLP.\"\"\"\n",
    "\n",
    "    def __init__(self, dim, h_dim):\n",
    "        super().__init__()\n",
    "        self.linear1 = nn.Linear(dim, h_dim)\n",
    "        self.linear2 = nn.Linear(h_dim, dim)\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = self.linear1(x)\n",
    "        x = x.relu()\n",
    "        x = self.linear2(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1e568017",
   "metadata": {},
   "source": [
    "PyTorch Training loop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "0d1b3dc5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final Loss after 5 steps: 1.0028\n"
     ]
    }
   ],
   "source": [
    "n_epochs = 5\n",
    "input_dim, hidden_dim, num_samples = 10, 50, 1000\n",
    "model = MLP(input_dim, hidden_dim)\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = optim.Adam(model.parameters(), lr=0.01)\n",
    "\n",
    "X_train = torch.randn([num_samples, input_dim])\n",
    "y_train = torch.randn([num_samples, input_dim])\n",
    "\n",
    "for epoch in range(n_epochs):\n",
    "    outputs = model(X_train)\n",
    "    loss = criterion(outputs, y_train)\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "print(f\"Final Loss after 5 steps: {loss.item():.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b9ace438",
   "metadata": {},
   "source": [
    "### Compiling MLX functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "e1a6d2f6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gelu:          array([-0.169571, -0.0094711, 0.120888, -0.122945], dtype=float32)\n",
      "compiled gelu: array([-0.169571, -0.0094711, 0.120888, -0.122945], dtype=float32)\n"
     ]
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "import math\n",
    "\n",
    "def gelu(x):\n",
    "    return x * (1 + mx.erf(x / math.sqrt(2))) / 2\n",
    "\n",
    "@mx.compile\n",
    "def compiled_gelu(x):\n",
    "    return x * (1 + mx.erf(x / math.sqrt(2))) / 2\n",
    "\n",
    "x = mx.random.normal(shape=(4,))\n",
    "\n",
    "out = gelu(x)\n",
    "compiled_out = compiled_gelu(x)\n",
    "print(f\"gelu:          {out}\")\n",
    "print(f\"compiled gelu: {compiled_out}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ead2025",
   "metadata": {},
   "source": [
    "### MLX Fast package"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "efe967cf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMS norm:      array([-1.47364, 0.545241, -0.767421, 0.140266], dtype=float32)\n",
      "Fast RMS norm: array([-1.47364, 0.545241, -0.767421, 0.140266], dtype=float32)\n"
     ]
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "def rms_norm(x, weight, eps=1e-5):\n",
    "    y = x.astype(mx.float32)\n",
    "    y = y * mx.rsqrt(mx.mean(\n",
    "        mx.square(y),\n",
    "        axis=-1,\n",
    "        keepdims=True,\n",
    "    ) + eps)\n",
    "    return (weight * y).astype(x.dtype)\n",
    "\n",
    "feature_dim = 4\n",
    "\n",
    "x = mx.random.normal((feature_dim,))\n",
    "weight = mx.random.normal((feature_dim,))\n",
    "\n",
    "y = rms_norm(x, weight, eps=1e-5)\n",
    "y_fast = mx.fast.rms_norm(x, weight, eps=1e-5)\n",
    "\n",
    "print(f\"RMS norm:      {y}\")\n",
    "print(f\"Fast RMS norm: {y_fast}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5c8d147a",
   "metadata": {},
   "source": [
    "### Custom Metal kernels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "9529b127",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "array([2.71828, 7.38906, 20.0855], dtype=float32)\n"
     ]
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "# Build the kernel\n",
    "source = \"\"\"\n",
    "    uint elem = thread_position_in_grid.x;\n",
    "    out[elem] = metal::exp(inp[elem]);\n",
    "\"\"\"\n",
    "kernel = mx.fast.metal_kernel(\n",
    "    name=\"myexp\",\n",
    "    input_names=[\"inp\"],\n",
    "    output_names=[\"out\"],\n",
    "    source=source,\n",
    ")\n",
    "\n",
    "# Call the kernel on a sample input\n",
    "x = mx.array([1.0, 2.0, 3.0])\n",
    "out = kernel(\n",
    "    inputs=[x],\n",
    "    grid=(x.size, 1, 1),\n",
    "    threadgroup=(256, 1, 1),\n",
    "    output_shapes=[x.shape],\n",
    "    output_dtypes=[x.dtype],\n",
    ")[0]\n",
    "print(out)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "93d536ac",
   "metadata": {},
   "source": [
    "### Quantization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "f04fe5fc",
   "metadata": {},
   "outputs": [],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "x = mx.random.normal([1024])\n",
    "weight = mx.random.normal([1024, 1024])\n",
    "\n",
    "quantized_weight, scales, biases = mx.quantize(\n",
    "        weight, bits=4, group_size=32,\n",
    ")\n",
    "\n",
    "y = mx.quantized_matmul(\n",
    "    x,\n",
    "    quantized_weight,\n",
    "    scales=scales,\n",
    "    biases=biases,\n",
    "    bits=4,\n",
    "    group_size=32,\n",
    ")\n",
    "\n",
    "w_orig = mx.dequantize(\n",
    "    quantized_weight,\n",
    "    scales=scales,\n",
    "    biases=biases,\n",
    "    bits=4,\n",
    "    group_size=32,\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "096d593a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sequential(\n",
      "  (layers.0): Embedding(100, 32)\n",
      "  (layers.1): Linear(input_dims=32, output_dims=32, bias=True)\n",
      "  (layers.2): Linear(input_dims=32, output_dims=32, bias=True)\n",
      "  (layers.3): Linear(input_dims=32, output_dims=1, bias=True)\n",
      ")\n",
      "Sequential(\n",
      "  (layers.0): QuantizedEmbedding(100, 32, group_size=32, bits=4)\n",
      "  (layers.1): QuantizedLinear(input_dims=32, output_dims=32, bias=True, group_size=32, bits=4)\n",
      "  (layers.2): QuantizedLinear(input_dims=32, output_dims=32, bias=True, group_size=32, bits=4)\n",
      "  (layers.3): QuantizedLinear(input_dims=32, output_dims=1, bias=True, group_size=32, bits=4)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "import mlx.nn as nn\n",
    "\n",
    "model = nn.Sequential(\n",
    "    nn.Embedding(100, 32),\n",
    "    nn.Linear(32, 32),\n",
    "    nn.Linear(32, 32),\n",
    "    nn.Linear(32, 1),\n",
    ")\n",
    "\n",
    "print(model)\n",
    "\n",
    "nn.quantize(\n",
    "    model,\n",
    "    bits=4,\n",
    "    group_size=32,\n",
    ")\n",
    "\n",
    "print(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "3b92700c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "array([1], dtype=float32)\n"
     ]
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "\n",
    "group = mx.distributed.init()\n",
    "\n",
    "world_size = group.size()\n",
    "rank = group.rank()\n",
    "\n",
    "x = mx.array([1.0])\n",
    "\n",
    "x_sum = mx.distributed.all_sum(x)\n",
    "\n",
    "print(x_sum)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "mlx",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
